package com.kong.dao;

import com.kong.entity.QueryPageBean;
import com.kong.pojo.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * @author yang2013
 * @data 2020/10/19 13:35
 */
public interface MenuDao {
    /**
     * 分页查询菜单项
     * @param queryPageBean
     * @return
     */
    List<Menu> findByPage(QueryPageBean queryPageBean);

    List<Menu> findAll();


    void addMenu(Menu menu);

    /**
     * 查询子菜单的数量
     * @return
     */
    int findParentMenuById(Integer id);

    void updateParentMenuIdToNull(Integer id);

    int findRoleById(Integer id);

    int deleteById(Integer id);

    Menu findById(Integer id);

    void update(Menu menu);

    /**
     * 查询当前用户的所有的一级菜单
     * @param
     * @return
     */
    List<Menu> findAllMenu(@Param("roleSet")Set<Integer> set);

    /**
     * 通过用户查询rid
     * @param uid
     * @return
     */
    Set<Integer> findRoleByUid(Integer uid);

    Set<Integer> findMenus(@Param("roles") Set<Integer> roles);

    /**
     * 通过登陆时的用户名称获取uid---动态获取菜单
     * @param username
     * @return
     */
    Integer findUidByUsername(String username);
}
